﻿using Credinka.Ayni.GEN.UTL;
using Credinka.Ayni.SEA.EN;
using Credinka.Ayni.SEA.RN;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class Modulos_SEA_Grupo : System.Web.UI.Page
{
    private int iNumeroRegistrosMostrar = Int32.Parse(ConfigurationManager.AppSettings["NumeroRegistrosMostrar"]);
    private int iTotalRegistros;
    private enGrupo oenGrupo;
    private rnGrupo ornGrupo;
    private rnDescripcion ornDescripcion;
    private List<enGrupo> loenGrupo;
    private utlPaginacion outlPaginacion;

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            CargarEstado();
        }
    }

    #region Métodos

    private void ListarGrupo(int piPaginaActual)
    {
        oenGrupo = new enGrupo();
        ornGrupo = new rnGrupo();
        oenGrupo.NumeroPagina = piPaginaActual;
        oenGrupo.NumeroRegistros = iNumeroRegistrosMostrar;
        oenGrupo.Nombre = txtNombre.Value;
        oenGrupo.Descripcion = txtDescripcion.Value;
        oenGrupo.CodigoEstado = ddlEstado.SelectedValue == string.Empty ? -1 : int.Parse(ddlEstado.SelectedValue);
        loenGrupo = new List<enGrupo>();
        loenGrupo = ornGrupo.Listar(oenGrupo);
        registros.Visible = loenGrupo.Count == 0 ? true : false;
        rptGrupo.DataSource = loenGrupo;
        rptGrupo.DataBind();
    }

    private void CargarEstado()
    {
        ornDescripcion = new rnDescripcion();
        ddlEstado.DataSource = ornDescripcion.ListarEstado();
        ddlEstado.DataTextField = "Descripcion";
        ddlEstado.DataValueField = "CodigoElemento";
        ddlEstado.DataBind();
        ddlEstado.Items.Insert(0, new ListItem("TODOS", "0"));
    }

    private void Paginar()
    {
        int iPaginaActual;
        iPaginaActual = hdfPaginaActual.Value == "" ? 1 : Int32.Parse(hdfPaginaActual.Value);
        hdfPaginaActual.Value = iPaginaActual.ToString();
        ListarGrupo(iPaginaActual);
        iTotalRegistros = loenGrupo.Count == 0 ? 0 : loenGrupo[0].TotalRegistros;
        lblTotalRegistros.Text = iTotalRegistros.ToString();
        outlPaginacion = new utlPaginacion(iTotalRegistros, iNumeroRegistrosMostrar, iPaginaActual, lblTotalPaginas, litPaginacion, hdfPaginaActual, btnAyuda);
        outlPaginacion.Paginar();
    }

    #endregion

    #region Eventos

    protected void btnBuscar_Click(object sender, EventArgs e)
    {
        mensajeBusqueda.Visible = false;
        Paginar();
    }

    #endregion

}